/**
 *
 */
import CryptoJS from "crypto-js";
/**
 *
 */
import AES from "crypto-js/aes.js";

/**
 *
 * @param pwd 加密前密码，应为字符串类型
 * @param timestamp 时间戳用于构成 密钥，应为字符串或者数字类型（如果需要转换为字符串参与加密）
 * @param iv 服务端给定的加密向量，默认为字符串类型，默认值为'4e3dada4c2d8afc0'
 * @returns 加密后的密码，返回Base64编码后的字符串
 */
export function cryptoPwd(pwd, timestamp, iv = "4e3dada4c2d8afc0") {
    const aesCrypto = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(pwd), CryptoJS.enc.Utf8.parse(`dcs${timestamp}`), {
        iv: CryptoJS.enc.Utf8.parse(iv),
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Base64.stringify(aesCrypto.ciphertext);
}
